qx.Class.define("caraffa.widgets.HistoriaClinica",
{
extend : qx.ui.window.Window,
construct : function (titulo,dni_paciente)
{
	this._dni_paciente = dni_paciente;
	this.base(arguments);	
	//RPC
	this._rpcHC = new qx.io.remote.Rpc();
	this._rpcHC.setTimeout(10000);
	this._rpcHC.setUrl("services/");
	this._rpcHC.setServiceName("historiasClinicas");
	
	this.setLayout(new qx.ui.layout.Basic());
	this.setCaption(titulo);
	this.setShowStatusbar(false);
	this.setModal(true);
	this.setMovable(true);
	this.setResizable(false);
	this.setShowMaximize(false);
	this.setShowMinimize(false);
	this.setWidth(950);
	this.setHeight(530);

	
	this._grpPaciente = new qx.ui.groupbox.GroupBox();
		this._grpPaciente.setLayout(new qx.ui.layout.Basic());
		this._grpPaciente.setWidth(350);
		this._grpPaciente.setHeight(317);
		this._grpPaciente.setEnabled(false);
		this._txtDNI = new qx.ui.form.ow.TextField("DNI:");
		this._txtNombre = new qx.ui.form.ow.TextField("Nombre:");
		this._txtNroHistoria = new qx.ui.form.ow.TextField("Nro Historia ClÃ­nica:");
		this._txdFecNac = new qx.ui.form.ow.DateText("Edad (30 aÃ±os):");
		this._txtPlan1 = new qx.ui.form.ow.TextField("Plan 1:");
		this._txtPlan1Nro = new qx.ui.form.ow.TextField("Nro Afiliado 1:");
		this._txtPlan2 = new qx.ui.form.ow.TextField("Plan 2:");
		this._txtPlan2Nro = new qx.ui.form.ow.TextField("Nro Afiliado 2:");
		this._txtTelefono = new qx.ui.form.ow.TextField("Telefono:");
		this._txtOrigen = new qx.ui.form.ow.TextField("Origen:");
		this._txtPertenece = new qx.ui.form.ow.TextField("Pertenece a:");
		
	this._grpPaciente.add(this._txtDNI,{top:0, left:0});
	this._grpPaciente.add(this._txtNombre,{top:25, left:0});
	this._grpPaciente.add(this._txtNroHistoria,{top:50, left:0});
	this._grpPaciente.add(this._txdFecNac,{top:75, left:0});
	this._grpPaciente.add(this._txtPlan1,{top:100, left:0});
	this._grpPaciente.add(this._txtPlan1Nro,{top:125, left:0});
	this._grpPaciente.add(this._txtPlan2,{top:150, left:0});
	this._grpPaciente.add(this._txtPlan2Nro,{top:175, left:0});
	this._grpPaciente.add(this._txtTelefono,{top:200, left:0});
	this._grpPaciente.add(this._txtOrigen,{top:225, left:0});
	this._grpPaciente.add(this._txtPertenece,{top:250, left:0});


	this._conBotonera = new qx.ui.container.Composite(new qx.ui.layout.HBox(20).set({alignX:"center"}));
	this._conBotonera.setWidth(350);
	this._btnNota = new qx.ui.form.Button("Agregar Nota","caraffa/16/anotador2.png");
	this._conBotonera.add(this._btnNota);
	
	
	this._grpDatos = new qx.ui.groupbox.GroupBox();
		this._grpDatos.setLayout(new qx.ui.layout.Basic());

		this._mdlDatos = new qx.ui.table.model.Simple();
			this._mdlDatos.setColumns(["Orden","Fecha","Motivo","Observación","Usuario","Obra Social","Lugar"]);
		this._tblDatos = new qx.ui.table.Table(this._mdlDatos);
			this._tblDatos.setStatusBarVisible(false);
			this._tblDatos.setColumnWidth(0, 80);
			this._tblDatos.getTableColumnModel().setColumnVisible(0,false);
			this._tblDatos.setColumnWidth(1, 80);
			this._tblDatos.setColumnWidth(2, 340);
			this._tblDatos.setColumnWidth(3, 10);
			this._tblDatos.getTableColumnModel().setColumnVisible(3,false);
			this._tblDatos.setColumnWidth(4, 10);
				this._tblDatos.getTableColumnModel().setColumnVisible(4,false);
			this._tblDatos.setColumnWidth(5, 10);
				this._tblDatos.getTableColumnModel().setColumnVisible(5,false);
			this._tblDatos.setColumnWidth(6, 100);				
			this._tblDatos.setShowCellFocusIndicator(false);
			this._tblDatos.setWidth(550);
			this._tblDatos.setHeight(290);
	this._grpDatos.add(this._tblDatos,{top:0, left:0});

	this._grpDato = new qx.ui.groupbox.GroupBox();
		this._grpDato.setLayout(new qx.ui.layout.Basic());
		this._txaDato = new qx.ui.form.ow.TextArea("Historia clinica detallada:");
			this._txaDato.getLabel().setWidth(200);
			this._txaDato.getText().setWidth(900);
			this._txaDato.getText().setHeight(120);
			this._txaDato.getText().setReadOnly(true);
	this._grpDato.add(this._txaDato,{top:0, left:0});
	
	
	
	this.add(this._grpPaciente,{top:0,left:0});
//	this.add(grpBotonera,{top:230,left:0});
	this.add(this._conBotonera,{top:287,left:0});
	this.add(this._grpDatos,{top:0,left:350});
	this.add(this._grpDato,{top:315,left:0});
	this._attachEvents();
},

members: {
	
	_attachEvents : function (){
		this.addListener('appear', this._initForm, this);
		this._btnNota.addListener('execute', this._agregarNota, this);
		this._tblDatos.addListener('cellClick', this._tblDatosClick, this);
		this._tblDatos.addListener("keyup", function (e)
		{
			if ((e.getKeyIdentifier() == 'Up') || (e.getKeyIdentifier() == 'Down'))
			{
				this._tblDatosClick();
			}
		}, this);
	},
	_initForm : function(){
		this._getPaciente();
	},
	_getPaciente : function(){
		try{
			var params = new Object();
			params.dni = this._dni_paciente;
			var resPaciente = this._rpcHC.callSync("getPaciente", params);
			this._txtDNI.setValue(this._dni_paciente);
			this._txdFecNac.getLabel().setValue("Fec.Nac ("+resPaciente.edad+"):");
			this._txdFecNac.setValue(resPaciente.fecha_nacimiento);
			this._txtNombre.setValue(resPaciente.nombre);
			this._txtNroHistoria.setValue(resPaciente.nro_historia_clinica);
			this._txtPlan1.setValue(resPaciente.plan1);
			this._txtPlan1Nro.setValue(resPaciente.nro_afiliado1);
			this._txtPlan2.setValue(resPaciente.plan2);
			this._txtPlan2Nro.setValue(resPaciente.nro_afiliado2);
			this._txtTelefono.setValue(resPaciente.telefono1);
			this._txtOrigen.setValue(resPaciente.origen);
			this._txtPertenece.setValue(resPaciente.pertenece);
		}
		catch(ex){
			alert("Sync exception: " + ex);
		}
		try{
			this._params = new Object();
			this._params.dni = this._txtDNI.getValue();			
			this._resDatos = this._rpcHC.callSync("getDatos", this._params);
			this._mdlDatos.setData(this._resDatos.values);
			this._mdlDatos.sortByColumn(0,true);
		}
		catch(ex){
			alert("Sync exeption: " + ex);
		}		
	},
	_agregarNota: function(){
		this._winAgregarNota = new caraffa.widgets.NotaHistoria("Agregar Nota", this._txtDNI.getValue());
		this._winAgregarNota.addListener("resize", this._winAgregarNota.center, this._winAgregarNota);
		this._winAgregarNota.addListenerOnce("notaAgregada", this._getPaciente, this);
  		this._winAgregarNota.open();
	},
	_tblDatosClick:function(){
		this._fecha = this._mdlDatos.getValue(1, this._tblDatos.getFocusedRow());
		this._motivo = this._mdlDatos.getValue(2, this._tblDatos.getFocusedRow());
		this._observacion = this._mdlDatos.getValue(3, this._tblDatos.getFocusedRow());
		this._usuario = this._mdlDatos.getValue(4, this._tblDatos.getFocusedRow());
		this._obraSocial = this._mdlDatos.getValue(5, this._tblDatos.getFocusedRow());
		if (this._obraSocial == null){ this._obraSocial = "No"};
			this._mostrar="[Fecha: "+this._fecha+"]        [Motivo: "+this._motivo+"]        [usuario: " +this._usuario+"]        [Plan: "+this._obraSocial+"]";
			this._mostrar+="\n------------------------------------------------------------------------------------------------------------------------------------------------------------------";
			this._mostrar+="\n"+this._observacion;
		this._txaDato.setValue(this._mostrar);
	}	
}
});
